package inteligencia_personaje;

import entidades.PowerUp;
import roles.Malo;
import roles.Personaje;
import main.Programa;

public class MovimientosPersonaje {
	
	protected Programa elPrograma;
	protected Personaje miPJ;
	
	public MovimientosPersonaje(Programa p, Personaje pj){
		elPrograma = p;
		miPJ = pj;
	}
	
	public boolean puedo_ir_derecha(){
		int coordXpj = miPJ.obtenerCoordenada().obtenerX();
		int coordYpj = miPJ.obtenerCoordenada().obtenerY();
		boolean encontro = false;
		int i = coordYpj;
		while(!encontro && i<(coordYpj + 32)){
			if(elPrograma.obtenerLadrillo(coordXpj + 32, i) != null)
				encontro = true;
			i ++;
		}
		return !encontro;
	}
	
	public boolean puedo_ir_izquierda(){
		int coordXpj = miPJ.obtenerCoordenada().obtenerX();
		int coordYpj = miPJ.obtenerCoordenada().obtenerY();
		boolean encontro = false;
		int i = coordYpj;
		while(!encontro && i<(coordYpj + 32)){
			if(elPrograma.obtenerLadrillo(coordXpj - 32, i) != null)
				encontro = true;
			i ++;
		}
		return !encontro;
	}

	public boolean puedo_ir_arriba(){
		int coordXpj = miPJ.obtenerCoordenada().obtenerX();
		int coordYpj = miPJ.obtenerCoordenada().obtenerY();
		boolean encontro = false;
		int i = coordXpj;
		while(!encontro && i<(coordXpj + 31)){
			if(elPrograma.obtenerLadrillo(i, coordYpj - 32) != null){
				PowerUp pp=elPrograma.obtenerLadrillo(i, coordYpj - 32).ObtenerPower();
				if (pp!=null){
					pp.mostrar(true);
					elPrograma.obtenerLadrillo(i, coordYpj - 32).hacerindestructible();
					elPrograma.obtenerLadrillo(i, coordYpj - 32).establecerImagen(0);
					elPrograma.obtenerMovMapa().refreshMapa(0);
					
					
				}
			
				encontro = true;}
			i ++;
		}
		i = coordXpj - 31;
		while(!encontro && i<(coordXpj)){
			if(elPrograma.obtenerLadrillo(i, coordYpj - 32) != null)
				encontro = true;
			i ++;
		}
		return !encontro;
	}

	public boolean puedo_ir_abajo(){
		int coordXpj = miPJ.obtenerCoordenada().obtenerX();
		int coordYpj = miPJ.obtenerCoordenada().obtenerY();
		boolean encontro = false;
		int i = coordXpj - 31;
		while(!encontro && i<(coordXpj)){
			if(elPrograma.obtenerLadrillo(i, coordYpj + 32) != null)
				encontro = true;
			i ++;
		}
		i = coordXpj;
		while(!encontro && i<(coordXpj + 31)){
			if(elPrograma.obtenerLadrillo(i, coordYpj + 32) != null)
				encontro = true;
			i ++;
		}
		return !encontro;
	}
}
